'use client';

import React from 'react';
import { usePathname } from 'next/navigation';
import { useAuth } from '@/contexts/AuthContext';
import AdminLayout from '@/components/AdminLayout';
import { Spin } from 'antd';

interface LayoutWrapperProps {
  children: React.ReactNode;
}

const LayoutWrapper: React.FC<LayoutWrapperProps> = ({ children }) => {
  const { isLoading, isAuthenticated } = useAuth();
  const pathname = usePathname();

  // 不需要布局的页面
  const noLayoutRoutes = ['/login'];

  // 检查是否需要布局
  const needsLayout = !noLayoutRoutes.some(route => pathname.startsWith(route));

  // 加载中状态
  if (isLoading) {
    return (
      <div style={{
        display: 'flex',
        justifyContent: 'center',
        alignItems: 'center',
        height: '100vh',
      }}>
        <Spin size="large" />
      </div>
    );
  }

  // 如果是登录页面或不需要布局的页面，直接返回子组件
  if (!needsLayout) {
    return <>{children}</>;
  }

  // 如果用户已登录且需要布局，使用 AdminLayout
  if (isAuthenticated) {
    return <AdminLayout>{children}</AdminLayout>;
  }

  // 未登录状态（这种情况通常不会发生，因为 AuthProvider 会重定向到登录页）
  return <>{children}</>;
};

export default LayoutWrapper; 